package com.zw.stock_sell_storage.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zw.stock_sell_storage.dto.InventoryDto;
import com.zw.stock_sell_storage.dto.MyPageDto;
import com.zw.stock_sell_storage.dto.ex.InventoryDtoEx;

/**
 * 库存业务层
 */
public interface IInventoryService {
    /**
     * 通过商品编码查询是否库存存在该商品
     * @param goodsCode 商品编码
     * @return 返回库存对应商品
     */
    InventoryDto queryInventoryByGoodsCode(String goodsCode);

    /**
     * 添加库存商品
     * @param inventoryDto 库存实体对象
     * @return 返回是否添加成功
     */
    boolean addInventory(InventoryDto inventoryDto);

    /**
     * 更新库存原商品
     * @param inventoryDto 库存实体对象
     * @return 返回是否修改成功
     */
    boolean updateInventory(InventoryDto inventoryDto);

    /**
     * 分页查询库存列表
     * @param myPageDto 自定义分页实体对象
     * @return 返回分页完成对象
     */
    Page<InventoryDto> queryInventoryList(MyPageDto<InventoryDtoEx> myPageDto);

    /**
     * 通过库存id查询对应库存商品
     * @param goodsId 库存id
     * @return 返回对应商品
     */
    InventoryDto queryInventoryById(int goodsId);
}
